The most important thing about converting from C to C#, aside from the whole object-oriented thingy, is that stuff created on the heap, such as your dynamic array with malloc (and about 99% of everything you'll do in C#), needs not be deleted with free. Managed memory with garbage collection leaves you free to worry about other things. yes, that is one thing that C# does nicely. Especially coupled with Managed DirectX (if you do 3d programming).